The present invention relates generally to the installation of program modules on a computer system. More particularly, the present invention relates to dynamic creation or modification of an install-set, prior to installation of program modules on a computer system.
Modern application program modules are often made up of many components. Certain components provide the basic functionality of the application program module, while other components provide extended functionality. As an example, a word processing program module may have certain basic functionality components, which allow a user to input and edit text. The word processing program module may also include extended functionality components that provide additional features, such as spell-checking, grammar checking, graphics editors, etc.
A common industry practice is to deliver to the user an application program module having a set of required components and a set of optional components. As such, a selected set of required and/or optional components, called an install-set, may be designated for installation onto a target computer system. Only those components included in the install-set are installed onto the target computer system. The install set desired by each user may be different. Choice of an install set may be driven by user or system requirements, system imitations, resource usage patterns, etc.
Another common industry practice is to automate, at least partially, the process involved in installing an install-set of a program module onto a target computer system. Generally, an installation program module is provided that is operable to copy an install-set into the appropriate memory locations of the target computer system. The installation program module may perform a xe2x80x9cfullxe2x80x9d installation, automatically installing all required and all optional components of an application program module onto the target computer system. A xe2x80x9cfullxe2x80x9d installation requires little user interaction. However, a xe2x80x9cfullxe2x80x9d install-set includes many unnecessary and/or undesired components, which may be referred to collectively as xe2x80x9cbloat.xe2x80x9d Installing xe2x80x9cbloatxe2x80x9d onto a target computer system undesirably leads to the inefficient use of system resources.
In order to reduce xe2x80x9cbloat,xe2x80x9d an installation program module may present the user with the option to perform a xe2x80x9ccustomxe2x80x9d installation. During a xe2x80x9ccustomxe2x80x9d installation, the user selects the components of the application program module to be included in the xe2x80x9ccustomxe2x80x9d install-set. Generally, a xe2x80x9ccustomxe2x80x9d installation will involve the installation program automatically installing all required components, but prompting the user for input prior to installing any optional components. While a xe2x80x9ccustomxe2x80x9d installation is effective to reduce xe2x80x9cbloat,xe2x80x9d excessive user interaction may cause such an installation process to be undesirable.
In order to reduce both xe2x80x9cbloatxe2x80x9d and user interaction in the installation process, the installation program module may provide the user with the option to perform a xe2x80x9ctypicalxe2x80x9d installation. During a xe2x80x9ctypicalxe2x80x9d installation, the installation program module automatically installs a xe2x80x9ctypicalxe2x80x9d install-set onto the target computer system. The xe2x80x9ctypicalxe2x80x9d install-set is a pre-defined set of required and/or optional components. The components of a xe2x80x9ctypicalxe2x80x9d install-set are generally selected based on a software manufacturer""s best estimation as to the requirements of the average user of an average computer system. While in some cases a xe2x80x9ctypicalxe2x80x9d install-set is effective to reduce xe2x80x9cbloat,xe2x80x9d in other cases it may serve to exclude some components that are in fact desired or required by a user. Therefore, a xe2x80x9ctypicalxe2x80x9d installation is often undesirable because the xe2x80x9ctypicalxe2x80x9d install-set is constant for all users and cannot be modified, without user interaction, to suit the requirements of an individual user or computer system.
Accordingly, there remains a need in the art for dynamic creation or modification of an install-set, without user interaction, to accommodate the needs of an individual user and/or the requirements of an individual computer system.
The present invention fulfills the need in the art for dynamically creating or modifying an install-set of a program module. The install-set may be dynamically created or modified, without user interaction, based on usage parameters of prior versions of the program module and/or the configuration parameters of the operating environment of the target computer system. Such dynamic modification of an install-set provides a simple installation process that accommodates the needs of an individual user and/or the requirements of an individual computer system.
A program module typically comprises a plurality of components. Some of the components may be required for operation of the program module, while other components may be optional. Thus, not all components of a program module must be installed onto a target computer system. An install-set is the set of components that are designated for installation onto the target computer system.
An install-set may be created or modified in response to detecting a parameter in the target operating environment of the target computer system. Based on the parameter, a determination may be made as to whether a component of the program module is to be installed onto the target computer system. After determining that the component is to be installed, the component may be designated for inclusion in, or exclusion from, the install-set. When the install-set is complete, all components therein are installed onto the target computer system.
The parameter detected in the target operating environment may relate to prior usage of a prior version of the program module. In such a case, the target operating environment is scanned for a prior version of the component and, if located, the date on which it was installed is determined. If the current date is not more than a period of time, for example one week, after the install date, the new version of the component is included in the install-set. Also, the date on which the prior version of the component was last accessed can be determined. If the last access date is more than a period of time, for example one week, after the install date, the new version of the component is included in the install-set. If the current date is more than a period of time, for example one week, after the install date and the last access date is less than the period of time after the install date, the component is typically excluded from the install-set.
The parameter detected in the target operating environment may also relate to the configuration of the target operating environment. Depending on the configuration of the target operating environment, a determination may be made as to whether a component should be included in, or excluded from, the install-set. For example, the target operating environment may be scanned to detect the available free space in the hard disk drive of the target computer system. If the available free space is minimal, a nonessential component may be excluded from the install-set. Also, the target operating environment may be scanned for the existence of a peripheral device. If a particular peripheral device is detected, a certain component of the program module may be required to drive the device. Further, the target operating environment may be scanned for the existence of a network connection. If a network connection is detected, some components of the program module may be excluded from the install-set because they may be easily retrieved from the network if subsequently needed.
A determination as to whether a component is to be included in the install-set may be made using any commonly known type of logic operation, for example traversing a decision tree. After a determination has been made, an installation preference is designated for the component. The installation preference may be simply xe2x80x9cInstall,xe2x80x9d or xe2x80x9cDoNotlnstall.xe2x80x9d The installation preference may also specify different types of installation, such as installation of the component onto the local memory of the target computer system (xe2x80x9cPreferLocalxe2x80x9d), installation of the component such that it is run from the source medium (xe2x80x9cPreferSourcexe2x80x9d) and installation of the component such that it is an advertised feature, i.e., presented to the user as if functional, but not fully installed until the user first accesses the feature (xe2x80x9cPreferAdvertisexe2x80x9d). Subsequently, each component is installed, or not installed, according to its install preference.